package com.hclc.yxb.service;



import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hclc.yxb.ao.AddRoleAndMenuAo;
import com.hclc.yxb.ao.ModRoleAndMenuAo;
import com.hclc.yxb.ao.ModSystemRoleMenuAo;
import com.hclc.yxb.dto.RoleAndMenuDto;
import com.hclc.yxb.dto.RoleAndMenuListDto;
import com.hclc.yxb.dto.SystemMenuDto;
import com.hclc.yxb.model.SysRoleModel;

import java.util.List;

/**
 * @ClassName PwlRoleManagementService
 * @Author: yurj
 * @Mail：1638234804@qq.com
 * @Date: Create in 22:09 2020/8/22
 * @version: 1.0
 */
public interface RoleManagementService {

    /**
     * 获取权限和菜单列表
     *
     * @param page
     * @return com.baomidou.mybatisplus.core.metadata.IPage<com.hclc.pwl.dto.RoleAndMenuDto>
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 9:36
     */
    IPage<RoleAndMenuDto> selectRoleAndMenu(Page<SysRoleModel> page);

    /**
     * 获取权限下拉
     * @param
     * @return java.util.List<com.hclc.hxwy.console.dto.RoleAndMenuListDto>
     * @author ljj
     * @version 1.0
     * @date 2020/10/30 11:24
     */
    List<RoleAndMenuListDto> selectRoleAndMenuList();

    /**
     * 添加角色和权限
     *
     * @param ao
     * @return com.hclc.pwl.model.result.ResultEntity
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 10:58
     */
    boolean insertSystemRole(AddRoleAndMenuAo ao);

    /**
     * 删除角色和权限
     *
     * @param roleId
     * @return boolean
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 11:13
     */
    boolean deleteSystemRole(String roleId);

    /**
     * 修改角色和权限
     *
     * @param ao
     * @return boolean
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 11:19
     */
    boolean updateSystemRole(ModRoleAndMenuAo ao);

    /**
     * 修改角色菜单列表
     *
     * @param ao
     * @return boolean
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 14:56
     */
    boolean updateSystemRoleMenu(ModSystemRoleMenuAo ao);

    /**
     * 查询菜单列表
     *
     * @param
     * @return java.util.List<com.hclc.pwl.dto.SystemMenuDto>
     * @author yurj
     * @mail 1638234804@qq.com
     * @version 1.0
     * @date 2020/8/23 13:22
     */
    List<SystemMenuDto> selectSystemMenuList();
}
